﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel
Imports roncliProductions.LibWowArmory.Enums

Namespace roncliProductions.LibWowArmory.Guild

    ''' <summary>
    ''' A class containing information about a guild.
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Guild

        ''' <summary>
        ''' The date the guild profile was last modified on the server.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property LastModified As Date

        ''' <summary>
        ''' The name of the guild.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Name As String

        ''' <summary>
        ''' The realm the guild plays on.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Realm As String

        ''' <summary>
        ''' The guild's level.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Level As Integer

        ''' <summary>
        ''' The side the guild is on.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Side As Side

        ''' <summary>
        ''' The number of guild achievement points the guild has.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property AchievementPoints As Integer

        ''' <summary>
        ''' The achievements and achievement criteria completed by the guild.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Achievements As Achievements

        Private Property lstMembers As Collection(Of Member)
        ''' <summary>
        ''' A list of members in the guild.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Members As Collection(Of Member)
            Get
                Return lstMembers
            End Get
        End Property

        ''' <summary>
        ''' Information about the guild's emblem.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Emblem As Emblem

        Protected Friend Sub New(dtLastModified As Date, strName As String, strRealm As String, intLevel As Integer, sSide As Side, intAchievementPoints As Integer, aAchievements As Achievements, mMembers As Collection(Of Member), eEmblem As Emblem)
            LastModified = dtLastModified
            Name = strName
            Realm = strRealm
            Level = intLevel
            Side = sSide
            AchievementPoints = intAchievementPoints
            Achievements = aAchievements
            lstMembers = mMembers
            Emblem = eEmblem
        End Sub

    End Class

End Namespace
